import { show } from '@/common/utils/show.js'
export const update = {
	// 检查更新
	checkAppUpdate(appConfig, scene) {
		var versionCode = plus.runtime.versionCode
		console.log('当前版本', plus.runtime)

		if (!appConfig || !appConfig.currentVersionNum) return
		if (versionCode != appConfig.currentVersionNum) {
			var _this = this
			if (appConfig.forceUpdating == '1') {
				uni.showModal({
					// title: '发现新版本v' + versionCode,
					content: '发现新版本v' + appConfig.currentVersion,
					confirmText: '立即升级',
					showCancel: false,
					success(res) {
						if (res.confirm) {
							_this.appUpdate(appConfig)
						}
					}
				})
			} else {
				uni.showModal({
					// title: '发现新版本v' + versionCode,
					content: '发现新版本v' + appConfig.currentVersion,
					confirmText: '立即升级',
					cancelText: '以后再说',
					success(res) {
						if (res.confirm) {
							_this.appUpdate(appConfig)
						}
					}
				})
			}
		}else{
			if(scene == 'mine'){
				show.showMessage('未发现新版本！')
			}
		}
	},
	appUpdate(appConfig) {
		//判断设备
		console.log('当前渠道', uni.getSystemInfoSync().platform)
		if (uni.getSystemInfoSync().platform === 'android') {
			var dtask = plus.downloader.createDownload(appConfig.androidUrl, {},
				function(d, status) {
					// 下载完成
					if (status == 200) {
						plus.runtime.install(plus.io
							.convertLocalFileSystemURL(d.filename), {}, {},
							function(error) {
								uni.showToast({
									title: '安装失败',
									mask: false,
									duration: 1500,
									icon: 'none'
								});
							})
					} else {
						uni.showToast({
							title: '更新失败',
							mask: false,
							duration: 1500,
							icon: 'none'
						});
					}
				});
			dtask.start();
			var prg = 0;
			var showLoading = plus.nativeUI.showWaiting("正在下载");
			dtask.addEventListener('statechanged', function(task,
				status) { //添加下载任务事件监听器
				// 给下载任务设置一个监听 并根据状态 做操作
				switch (task.state) {
					case 1:
						// 正在下载
						break;
					case 2:
						// 已连接到服务器
						break;
					case 3:
						prg = parseInt( //下载的进度
							(parseFloat(task.downloadedSize) /
								parseFloat(task.totalSize)) * 100
						);
						showLoading.setTitle("版本更新,正在下载" + prg +
							"% ");
						break;
					case 4:
						//下载完成
						plus.nativeUI.closeWaiting(); //关闭系统提示框
						break;
				}
			});
		} else if (uni.getSystemInfoSync().platform === 'ios') {
			plus.runtime.openURL(appConfig.iosUrl, function(res) {
				console.log('打开地址', res);
			});
		}
	},
	miniproUpdate() {
		var that = this
		const updateManager = uni.getUpdateManager();
		updateManager.onCheckForUpdate(function(res) {
			// 请求完新版本信息的回调
			if (res.hasUpdate) {
				updateManager.onUpdateReady(function(res2) {
					uni.showModal({
						title: '更新提示',
						content: '发现新版本，是否重启应用?',
						cancelColor: '#eeeeee',
						confirmColor: '#4169ea',
						success(res) {
							if (res.confirm) {
								// 新的版本已经下载好，调用 applyUpdate 应用新版本并重启
								updateManager.applyUpdate();
							} else if (res.cancel) {
								uni.showModal({
									title: '温馨提示~',
									content: '本次版本更新涉及到新的功能添加，旧版本无法正常访问的哦~',
									cancelColor: '#eeeeee',
									confirmColor: '#4169ea',
									success(res) {
										that.miniproUpdate()
										return;
										if (res.confirm) {
											// 新的版本已经下载好，调用 applyUpdate 应用新版本并重启
											updateManager.applyUpdate()
										} else if (res.cancel) {
											that.miniproUpdate()
										}
									}
								});
							}
						}
					});
				});
			}
		});

		updateManager.onUpdateFailed(function(res) {
			// 新的版本下载失败
			uni.showModal({
				title: '已经有新版本了哟~',
				content: '新版本已经上线啦~，请您删除当前小程序，重新搜索打开哟~',
				success(res) {
					if (res.confirm) {
						// 新的版本已经下载好，调用 applyUpdate 应用新版本并重启
						updateManager.applyUpdate();
					}
				}
			});
		});

	}
}
